// 引入defineStore
import { defineStore } from "pinia";
// 引入api
import { reqLogin } from '@/api/user'
// 引入参数类型
import type { loginParams } from '@/api/user/type.ts'
// 创建用户小仓库
// 第一个参数为仓库名，第二个参数为仓库内容
let userStore = defineStore('User', {
    // 小仓库存储数据的地方
    state: () => {
        return {
            token: localStorage.getItem('userToken'),
        }
    },
    // 异步|逻辑处理的地方
    actions: {
        // 登录请求接口
        async userLogin(data: loginParams) {
            // await处理获取过来的promise对象
            let result = await reqLogin(data);
            // 请求成功则将token存入localStorage
            if (result.code === 200) {
                this.token = result.data.token;
                // 缓存入localStorage
                localStorage.setItem('userToken', result.data.token);
                return 'ok';
            } else {
                return Promise.reject(new Error(result.data.message));
            }
        }
    },
    getters: {

    }
});

// 对外暴露小仓库
export default userStore;